package com.zhangtai.modules.vo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;


import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Author: ming
 * @Date: 2020/6/15 0015 下午 1:52
 */
@Data
public class EmployeeInfoUpdateVo {

    /**
     * 编号
     */

    @NotNull(message = "id不能为空")
    @ApiModelProperty(value="id",required = true)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid;

    /**
     * 姓名
     */
    @ApiModelProperty(value="姓名",required = false)
    private String name;
    /**
     * 性别
     */
    @ApiModelProperty(value="性别，1：男，2：女，字符串型",required = false)
    private String gender;
    /**
     * 身份证号
     */
    @ApiModelProperty(value="身份证号",required = false)
    private String idcard;
    /**
     * 民族
     */
    @ApiModelProperty(value="国家：156:中国",required = false)
    private String nation;

    /**
     * 籍贯省
     */
    @ApiModelProperty(value="籍贯省",required = false)
    private String nativeplaceProvince;

    /**
     * 籍贯
     */
    @ApiModelProperty(value="籍贯",required = false)
    private String nativeplace;
    /**
     * 国籍
     */

    @ApiModelProperty(value="民族",required = false)
    private String nationality;
    /**
     * 手机
     */
    @ApiModelProperty(value="手机",required = false)
    private String mobile;

    @ApiModelProperty(value="工号",required = false)
    private String code;
    /**
     * 政治面貌
     */
    @ApiModelProperty(value="政治面貌，1：党员， 13：群众",required = false)
    private String polity;
    /**
     * 户口所在地
     */
    @ApiModelProperty(value="户口所在地",required = false)
    private String regresidence;
    /**
     * 家庭地址
     */
    @ApiModelProperty(value="家庭地址",required = false)
    private String address;
    /**
     * 个人电子邮件
     */
    @ApiModelProperty(value="电子邮箱",required = false)
    private String privatemail;
    /**
     * 健康状态
     */
    @ApiModelProperty(value="健康状态,1:非常好 ，2：良好 3：一般，4：有生理缺陷，5：残废",required = false)
    private String healthstatus;
    /**
     * 是否退伍兵
     */
    @ApiModelProperty(value="是否退伍兵 1:是，2不是",required = false)
    private String disbandment;
    /**
     * 婚姻状况
     */
    @ApiModelProperty(value="婚姻状况，1：未婚，2：已婚",required = false)
    private String marital;
    /**
     * 参加工作日期
     */
    @ApiModelProperty(value="参加工作日期",required = false)
    private Date beginworkdate;
    /**
     * 生日
     */
    @ApiModelProperty(value="生日",required = false)
    private Date birthday;

    /**
     * 0:社招，1：实习生
     */
    @ApiModelProperty(value="0：社招，1：实习生",required = false)
    private String socialTrainee;
    /**
     * 联系方式
     */
    @ApiModelProperty(value="联系方式",required = false)
    private String contact;
    /**
     * 拟录用部门
     */
//    @ApiModelProperty(value="拟录用部门，读接口/job/findOrgTree获取",required = false)
//    private String unitname;
    /**
     * 拟录用公司
     */
//    @ApiModelProperty(value="拟录用公司，读接口/job/findOrgTree获取",required = false)
//    private String orgname;


    /**
     * 公司id
     */
    @ApiModelProperty(value="拟录部门id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;

    /**
     * 公司id
     */
    @ApiModelProperty(value="拟录公司id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long orgId;
    /**
     * 拟录用岗位
     */
//    @ApiModelProperty(value="拟录用岗位，读接口/job/findJobByOrgId/{orgId}获取",required = false)
//    private String jobname;



    /**
     * 职位id
     */
    @ApiModelProperty(value="岗位id，读接口/job/findJobByOrgId/{orgId}获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobId;

    /**
     * 职级id
     */
    @ApiModelProperty(value="职级id,读接口/job/findJobLevel获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobLevelId;
    /**
     * 职级
     */
//    @ApiModelProperty(value="职级，读接口/job/findJobLevel获取",required = false)
//    private String jobLevel;

    @ApiModelProperty(value="职级类别,1:专业职级，2：管理职级",required = false)
    private Integer jobLevelType;
    /**
     * 预计入职时间
     */
    @ApiModelProperty(value="预计入职时间",required = false)
    private Date hiredate;


    /**
     * 试用期
     */
    @ApiModelProperty(value="试用期",required = false)
    private Integer probationday;
    /**
     * 固定月薪
     */

    @ApiModelProperty(value="0:新建 ，1：填写完已保存 2：bpm审批中，3：审批完成,4:流程作废，5：offer已发送，6：流程被驳回",required = false)
    private Integer status;



    /**
     * 招聘渠道
     */
    @ApiModelProperty(value="招聘渠道,1:猎头，2：网站，3：内部推荐，4：外部推荐，5：现场招聘，6：校园招聘，7：其他",required = false)
    private String channel;
    /**
     * 招聘网站
     */
    @ApiModelProperty(value="招聘网站",required = false)
    private String recruitmentWeb;
    /**
     * 推荐人-内部
     */
    @ApiModelProperty(value="推荐人-内部",required = false)
    private String innerReferrer;
    /**
     * 推荐人-外部
     */
    @ApiModelProperty(value="推荐人-外部",required = false)
    private String outerReferrer;

    @ApiModelProperty(value="条线",required = false)
    private String line;
    @ApiModelProperty(value="体系",required = false)
    private String jobSystem;

    @ApiModelProperty(value="条线id，读接口：/salary/getOrgLine获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long lineId;

    @ApiModelProperty(value="体系id，读接口：/salary/getOrgSystem获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobSystemId;




    @ApiModelProperty(value="原单位工资流水图片",required = false)
    private List<String> oldSalaryRecordUrl;

    @ApiModelProperty(value="一寸照片url",required = false)
    private String photoUrl;

    @ApiModelProperty(value="毕业证",required = false)
    private String graduationUrl;

    @ApiModelProperty(value="学位证",required = false)
    private String degreeUrl;

    @ApiModelProperty(value="离职证明",required = false)
    private String dimissionUrl;

    @ApiModelProperty(value="体检报告",required = false)
    private String healthUrl;
    @ApiModelProperty(value="身份证正反面",required = false)
    private List<String> idcardImgs;
//
//    @ApiModelProperty(value="是否已发送offer,0:没发过，1：发过",required = false)
//    private Integer isOffer;

//    @ApiModelProperty(value="招聘负责人",required = false)
//    private String principal;

    /**
     * 是否转正0:未转正，1：转正 ，2：延期转正 3：不予转正
     */

    @ApiModelProperty(value="是否转正，0:未转正，1：转正 ，2：延期转正 3：不予转正",required = false)
    private Integer isRegular;

    /**
     * 0:转正未处理，1：已处理
     */
    @ApiModelProperty(value="0:转正未处理，1：已处理",required = false)
    private Integer regularIsDone;

    @ApiModelProperty(value="工作地点",required = false)
    private String workAddress;

    @ApiModelProperty(value="0:新员工，1：复职员工，2：旧员工",required = false)
    private Integer isReinstate;

    /**
     * 合同类型，0：聘用合同，1：劳动合同
     */
    @ApiModelProperty(value="合同类型，0：聘用合同，1：劳动合同",required = false)
    private String contractType;


    /**
     * 合同期限类型，1：固定期限，2：无固定期限 ，3：完成一定工作期限，4：5至10年(含10年)，5：无固定期限，6：完成一定工作期限，7：其他
     */
    @ApiModelProperty(value="合同期限类型，1：固定期限，2：无固定期限 ，3：完成一定工作期限，4：5至10年(含10年)，5：无固定期限，6：完成一定工作期限，7：其他",required = false)
    private String contractTimeType;

    @ApiModelProperty(value="是否管培生，2：不是，1：是",required = false)
    private Integer isManagementTrainee;

    @ApiModelProperty(value="职称证书",required = false)
    private List<String>  credential;

    @ApiModelProperty(value="其他附件",required = false)
    private List<String> attachments;


    @ApiModelProperty(value="类型",required = false)
    private String jobType;

    /**
     * 档案地址
     */
    @ApiModelProperty(value="档案地址",required = false)
    private String recordFileAddress;

    @ApiModelProperty(value = "退伍军人编号", required = false)
    private String veteranNum;

    /**
     * 专业类型
     */
    @ApiModelProperty(value = "专业类型", required = false)
    private String professionalType;
    /**
     * 岗位星级
     */
    @ApiModelProperty(value = "岗位星级", required = false)
    private String positionStar;
    /**
     * 是否复职
     */
    @ApiModelProperty(value = "是否复职", required = false)
    private String reinstatement;
    /**
     * 档案编号
     */
    @ApiModelProperty(value = "档案编号", required = false)
    private String fileNumber;
    @ApiModelProperty(value = "是否公司负责人，null：不是，1：是", required = false)
    private String iscentreprincipal;

    @ApiModelProperty(value = "是否部门负责人，null：不是，1：是", required = false)
    private String isdepartmentprincipa;

    /**
     * 劳动合同期限
     */
    private Integer laborContractYears;

}
